package Model;

import java.util.Vector;


public class Cliente {
	
	private String nombre;
	private String apellido;
	private String dni;
	private String direccion;
	private String telefono;
	private String email;
	private Vector<Linea> lineas;
	private RegistroConsumo registroConsumos;
	
	public Cliente (String nombre, String apellido, String dni,String direccion,String telefono, String email){
		this.nombre = nombre;
		this.apellido = apellido;
		this.dni = dni;
		this.direccion = direccion;
		this.telefono = telefono;
		this.email = email;
		this.lineas = new Vector<Linea>();
		this.registroConsumos = new RegistroConsumo();
	}

	public String getDni() {		
		return dni;
	}
	
	public void setDni(String dni){
		this.dni = dni;
	}

	public String getNombre() {		
		return nombre;
	}
	
	public void setNombre(String nombre){
		this.nombre = nombre;
	}

	public String getApellido() { 
		return apellido;
	}
	
	public void setApellido(String apellido){
		this.apellido = apellido;
	}
	
		
	public Vector<Linea>getLineas(){
		return lineas;
	}
	
	public boolean agregarLinea(Linea lineaNueva){
		if(lineas.size() < 5){
			lineas.add(lineaNueva);
			return true;
		}else{
			return false;
		}
	}

	public String getDireccion() {
		return direccion;
	}

	public void setDireccion(String direccion) {
		this.direccion = direccion;
	}

	public String getTelefono() {
		return telefono;
	}

	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}
	
	public ClienteView getView(){
		Vector<LineaView> lineasView = new Vector<LineaView>();
		for(Linea linea : lineas){
			linea.getView();			
			lineasView.add(linea.getView());
		}
		return new ClienteView(nombre, apellido, dni, direccion, telefono, email, lineasView);
	}
	
	public void eliminarLinea(String lineaABuscar){
		int i=0;
		while (!this.lineas.get(i).getNroLinea().equalsIgnoreCase(lineaABuscar)){
			i++;
		}
		if (this.lineas.get(i).getNroLinea().equalsIgnoreCase(lineaABuscar)){
			this.lineas.remove(i);
		}
	}
	
	public RegistroConsumo getRegistroConsumo(){
		return registroConsumos;
	}
	
	public void registrarConsumo(Consumo consumo){
		registroConsumos.agregarConsumo(consumo);
	}
	
	public Linea getLinea(String nroLinea){
		boolean encontrado = false;
		Linea lineaEncontrada = null;
		int i = 0;
		
		while(!encontrado && i < lineas.size()){
			if (lineas.get(i).getNroLinea().equalsIgnoreCase(nroLinea)){
				lineaEncontrada = lineas.get(i);
				encontrado = true;
			}
			i++;
		}
		
		return lineaEncontrada;
	}

	public String getEmail() {
		return email;
	}
	
	public void setEmail(String email){
		this.email = email;
	}

	public void setLineas(Vector<Linea> lineas) {
		this.lineas = lineas;
	}
}
